Aller au contenu principal

Structure de données DataFrame

Un DataFrame est une table bidimensionnelle dont les lignes et les colonnes sont étiquetées. Chaque colonne possède son type, tandis que toutes partagent le même index de lignes.

import pandas as pd

people = pd.DataFrame(
{
"name": pd.Series(["Ada", "Lin"], dtype="string"),
"age": pd.Series([36, pd.NA], dtype="Int64"),
}
)

Invariants à vérifier

people.shape
people.columns
people.index
people.dtypes
people.info()

Le schéma dépasse les noms de colonnes : unicité, types, unités, valeurs manquantes et sens de l'index influencent tous le comportement en aval.

Colonnes et affectation

names = people["name"] # Series
subset = people[["name", "age"]] # DataFrame
people = people.assign(adult=people["age"].ge(18))

Lors de l'affectation d'une Series, pandas l'aligne sur l'index. N'affectez un objet de type tableau que si l'alignement positionnel est intentionnel et que les longueurs correspondent.

Lignes et mutations

Sélectionnez et affectez en une seule opération avec .loc. L’instruction suivante remplace l’âge de Lin par 34, mais ne recalcule pas adult : cette colonne conserve le résultat précédent, pas une formule actualisée automatiquement. La valeur adult de Lin reste donc manquante jusqu’à ce que l’expression assign précédente soit réexécutée avec les âges mis à jour.

people.loc[people["name"].eq("Lin"), "age"] = 34

Évitez les affectations chaînées comme df[mask]["age"] = 34. Elles masquent l'objet réellement modifié et entrent en conflit avec le modèle de copie à l'écriture de pandas.

Préférez les transformations qui renvoient un résultat (assign, rename, drop) aux mutations inplace=True dispersées. Réaffecter les étapes facilite leur examen et leurs tests.

Limite d'emploi

Pandas convient surtout aux données tabulaires qui tiennent aisément en mémoire. Imposez les schémas stricts à l'ingestion ; pour les volumes supérieurs à la mémoire ou le calcul distribué, choisissez un moteur adapté.

Sources

Explorer les liensOuvrir le réseau